using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Gko.Utils.Interfaces;

namespace Gko.Utils
{
	public interface ITask : IDisposable2
	{
		string Name
		{
			get;
		}

		int Priority
		{
			get;
		}

		ProceedResult WaitForResume();
		void ResumeTask(ProceedResult result);

		ProceedResult OnProceed();
		event EventHandler<TaskCompletedEventArgs> Completed;
	}
}
